{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cpu\n"
     ]
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import pennylane as qml\n",
    "\n",
    "from pennylane import numpy as np\n",
    "import torch.optim as optim\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "\n",
    "from rdkit import RDLogger\n",
    "RDLogger.DisableLog('rdApp.*')\n",
    "\n",
    "import pandas as pd\n",
    "import sys\n",
    "sys.path.append(\"../\")\n",
    "from qmg.utils import MoleculeQuantumStateGenerator\n",
    "\n",
    "num_heavy_atom = 2\n",
    "data_path = f\"../dataset/chemical_space/effective_{num_heavy_atom}.csv\"\n",
    "data_generator = MoleculeQuantumStateGenerator(heavy_atom_size=num_heavy_atom, ncpus=16)\n",
    "data = pd.read_csv(data_path)\n",
    "\n",
    "# Quantum variables\n",
    "n_a_qubits = 1  # Number of ancillary qubits / N_A\n",
    "n_qubits = data_generator.n_qubits # + n_a_qubits  # Total number of qubits / N\n",
    "q_depth = 6  # Depth of the parameterised quantum circuit / D\n",
    "n_generators = 1  # Number of subgenerators for the patch method / N_G\n",
    "sample_num = 2000 # Number of sampled molecules for validating the training\n",
    "# data_reuploading = False\n",
    "\n",
    "dev = qml.device(\"lightning.qubit\", wires=n_qubits) # Quantum simulator\n",
    "# device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\") # Enable CUDA device if available\n",
    "device = torch.device(\"cpu\")\n",
    "print(device)\n",
    "\n",
    "valid_state_mask = data_generator.generate_valid_mask(data)\n",
    "valid_state_mask = torch.Tensor(valid_state_mask).to(device)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'CO', 'NN', 'CN', 'C=N', 'N=N', 'C=C', 'C#N', 'OO', 'O=O', 'C=O', 'N=O', 'O', 'C#C', 'N#N', 'NO', 'C', 'CC', 'N'}\n"
     ]
    }
   ],
   "source": [
    "print(set(data[\"smiles\"]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [],
   "source": [
    "@qml.qnode(dev, diff_method=\"parameter-shift\")\n",
    "def quantum_circuit(noise, weights, data_reuploading):\n",
    "    weights = weights.reshape(q_depth, n_qubits * 3)\n",
    "    for i in range(q_depth):\n",
    "        if data_reuploading:\n",
    "            for j in range(n_qubits):\n",
    "                qml.RY(noise[j], wires=j)\n",
    "        else:\n",
    "            if i == 0:\n",
    "                for j in range(n_qubits):\n",
    "                    qml.RY(noise[j], wires=j)\n",
    "        # Parameterised layer\n",
    "        for y in range(n_qubits):\n",
    "            qml.RZ(weights[i][3*y], wires=y)\n",
    "            qml.RX(weights[i][3*y+1], wires=y)\n",
    "            qml.RY(weights[i][3*y+2], wires=y)\n",
    "        # Control Z gates\n",
    "        for y in range(n_qubits - 1):\n",
    "            qml.CNOT(wires=[y, y + 1])\n",
    "        else:\n",
    "            qml.CNOT(wires=[y+1, 0])\n",
    "    return qml.probs(wires=list(range(n_qubits)))\n",
    "\n",
    "def binary_tensor_to_string(tensor):\n",
    "    flat_tensor = tensor.view(-1).tolist()\n",
    "    binary_string = ''.join(map(str, flat_tensor))\n",
    "    return binary_string\n",
    "\n",
    "def calc_validity_and_uniqueness(smiles_list):\n",
    "    valid_smiles_list = [i for i in smiles_list if i is not None]\n",
    "    return len(valid_smiles_list) / len(smiles_list), len(set(valid_smiles_list)) / len(smiles_list)\n",
    "\n",
    "class PatchQuantumGenerator(nn.Module):\n",
    "    \"\"\"Quantum generator class for the patch method\"\"\"\n",
    "    def __init__(self, n_generators, valid_state_mask, q_delta=1, temperature=5, data_reuploading=False):\n",
    "        \"\"\"\n",
    "        Args:\n",
    "            n_generators (int): Number of sub-generators to be used in the patch method.\n",
    "            q_delta (float, optional): Spread of the random distribution for parameter initialisation.\n",
    "            temperature (float, optional): parameter adjusting the output probability distribution.\n",
    "            data_reuploading (bool): whether to use the data reuploading technique.\n",
    "        \"\"\"\n",
    "        super().__init__()\n",
    "        self.q_params = nn.ParameterList(\n",
    "            [\n",
    "                nn.Parameter(q_delta * torch.rand(q_depth * n_qubits * 3), requires_grad=True)\n",
    "                for _ in range(n_generators)\n",
    "            ]\n",
    "        )\n",
    "        self.n_generators = n_generators\n",
    "        self.valid_state_mask = valid_state_mask\n",
    "        self.noise_to_probability_linear_layer = nn.Linear(n_qubits, 2**n_qubits)\n",
    "        self.softmax_layer = nn.Softmax(dim=1)\n",
    "        self.temperature = temperature\n",
    "        self.data_reuploading = data_reuploading\n",
    "        for param in self.noise_to_probability_linear_layer.parameters():\n",
    "            param.requires_grad = False\n",
    "\n",
    "    def forward(self, x):\n",
    "        # Size of each sub-generator output\n",
    "        patch_size = 2 ** n_qubits # 2 ** (n_qubits - n_a_qubits)\n",
    "        # Create a Tensor to 'catch' a batch of images from the for loop. x.size(0) is the batch size.\n",
    "        outputs = torch.Tensor(x.size(0), 0).to(device)\n",
    "        # Iterate over all sub-generators\n",
    "        for params in self.q_params:\n",
    "            # Create a Tensor to 'catch' a batch of the patches from a single sub-generator\n",
    "            patches = torch.Tensor(0, patch_size).to(device)\n",
    "            for elem in x:\n",
    "                q_out = quantum_circuit(elem, params, self.data_reuploading).float().unsqueeze(0) # partial_measure\n",
    "                patches = torch.cat((patches, q_out))\n",
    "            # Each batch of patches is concatenated with each other to create a batch of images\n",
    "            outputs = torch.cat((outputs, patches), 1)\n",
    "\n",
    "        # converted input noise\n",
    "        converted_x = self.noise_to_probability_linear_layer(x) * self.temperature# - 10 * (1 - self.valid_state_mask) \n",
    "        # converted_x = self.softmax_layer(converted_x)\n",
    "        return outputs, converted_x\n",
    "    \n",
    "    def random_sample(self, sample_num, fixed_noise=False):\n",
    "        weights = torch.tensor([])\n",
    "        state_dict = self.state_dict()\n",
    "        for name, param in state_dict.items():\n",
    "            if name in [\"noise_to_probability_linear_layer.weight\", \"noise_to_probability_linear_layer.bias\"]:\n",
    "                continue\n",
    "            weights = torch.cat([weights, param.data])\n",
    "        if fixed_noise:\n",
    "            dev_sample = qml.device(\"default.qubit\", wires=n_qubits, shots=sample_num)\n",
    "        else:\n",
    "            dev_sample = qml.device(\"default.qubit\", wires=n_qubits, shots=1)\n",
    "        @qml.qnode(dev_sample)\n",
    "        def quantum_circuit_sample(noise, weights, data_reuploading):\n",
    "            weights = weights.reshape(q_depth, n_qubits * 3)\n",
    "            for i in range(q_depth):\n",
    "                if data_reuploading:\n",
    "                    for j in range(n_qubits):\n",
    "                        qml.RY(noise[j], wires=j)\n",
    "                else:\n",
    "                    if i == 0:\n",
    "                        for j in range(n_qubits):\n",
    "                            qml.RY(noise[j], wires=j)\n",
    "                # Parameterised layer\n",
    "                for y in range(n_qubits):\n",
    "                    qml.RZ(weights[i][3*y], wires=y)\n",
    "                    qml.RX(weights[i][3*y+1], wires=y)\n",
    "                    qml.RY(weights[i][3*y+2], wires=y)\n",
    "                # Control Z gates\n",
    "                for y in range(n_qubits - 1):\n",
    "                    qml.CNOT(wires=[y, y + 1])\n",
    "                else:\n",
    "                    qml.CNOT(wires=[y+1, 0])\n",
    "            return qml.sample()\n",
    "        \n",
    "        \n",
    "        if fixed_noise:\n",
    "            noise = torch.rand(n_qubits, device=device) * np.pi / 2\n",
    "            sampled_quantum_states = quantum_circuit_sample(noise, weights, self.data_reuploading) # 2-dimensional torch.tensor\n",
    "        else:\n",
    "            sampled_quantum_states = []\n",
    "            for i in range(sample_num):\n",
    "                noise = torch.rand(n_qubits, device=device) * np.pi / 2\n",
    "                sampled_quantum_states.append(quantum_circuit_sample(noise, weights, self.data_reuploading))\n",
    "\n",
    "        sampled_quantum_states = [binary_tensor_to_string(qs) for qs in sampled_quantum_states]\n",
    "        smiles_list = []\n",
    "        for q in sampled_quantum_states:\n",
    "            smiles_list.append(data_generator.QuantumStateToSmiles(q))\n",
    "        return smiles_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_two_heavy_atoms_system(results: dict):\n",
    "    keys = ['CO', 'NN', 'CN', 'C=N', 'N=N', 'C=C', 'C#N', 'OO', 'O=O', 'C=O', 'N=O', 'O', 'C#C', 'N#N', 'NO', 'C', 'CC', 'N', \"None\"]\n",
    "    counts = [results.get(key, 0) for key in keys]\n",
    "    total = sum(counts)\n",
    "    counts = [c/total for c in counts]\n",
    "\n",
    "    # 畫直方圖\n",
    "    plt.figure(figsize=(5, 3))\n",
    "    plt.bar(keys, counts, color='blue')\n",
    "    plt.xlabel('Keys')\n",
    "    plt.ylabel('Probability')\n",
    "    plt.xticks(rotation=45, ha='right')\n",
    "    plt.tight_layout()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sampling 2000 molecules, validity: 94.55%, uniqueness: 1.2%.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAEiCAYAAAA21pHjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHnElEQVR4nO3deXxMZ/s/8M9ktyVBSIQQS6yJhOyxxBKi1tBUqEqE6mIrUUtUKV2ilKryVNXSnz5VS6m2aqnG0kXsSmOnipIJsSQE2eb6/eGbeTIySWYmEzn4vF+veZEz97nmvuecOdd9lvsclYgIiIiISJEsyrsCREREVDQmaiIiIgVjoiYiIlIwJmoiIiIFY6ImIiJSMCZqIiIiBWOiJiIiUjAmaiIiIgWzKu8KKJFGo8HVq1dRpUoVqFSq8q4OERE9ZUQEd+7cgaurKywsit9nZqLW4+rVq3BzcyvvahAR0VPu8uXLqFOnTrFlmKj1qFKlCoCHX6C9vX0514aIiJ42GRkZcHNz0+ab4jBR65F/uNve3p6JmoiIyowhp1d5MRkREZGCMVETEREpGBM1ERGRgjFRExERKRgTNRERkYKVe6JetGgR3N3dYWdnh8DAQOzfv7/IssePH8fzzz8Pd3d3qFQqzJ8/v1CZhIQE+Pv7o0qVKqhZsyYiIiJw+vTpMmwBERFR2SnXRL1mzRrExcVh+vTpOHz4MLy9vREeHo5r167pLX/v3j00aNAAs2bNgouLi94yu3fvxsiRI7F3715s374dOTk56Nq1KzIzM8uyKURERGVCJSJSXh8eGBgIf39/LFy4EMDDW3e6ublh9OjRmDx5crHzuru7Y+zYsRg7dmyx5a5fv46aNWti9+7daN++vUH1ysjIgIODA9LT0zmOmoieeqW9U3L5ZZEnlzF5ptz2qLOzs3Ho0CGEhYX9rzIWFggLC0NSUpLZPic9PR0AUK1atSLLZGVlISMjQ+dFRESkBOWWqNPS0pCXlwdnZ2ed6c7OzlCr1Wb5DI1Gg7Fjx6JNmzbw9PQsslxCQgIcHBy0L97nm4iIlKLcLyYrSyNHjkRycjJWr15dbLn4+Hikp6drX5cvX35MNSQiIipeud3r28nJCZaWlkhNTdWZnpqaWuSFYsYYNWoUNm3ahF9//bXEJ5PY2trC1ta21J9JRERkbuW2R21jYwNfX18kJiZqp2k0GiQmJiI4ONjkuCKCUaNG4bvvvsOOHTtQv359c1SXiIioXJTr07Pi4uIQExMDPz8/BAQEYP78+cjMzERsbCwAIDo6GrVr10ZCQgKAhxegnThxQvv/K1eu4M8//0TlypXRqFEjAA8Pd69atQrff/89qlSpoj3f7eDggAoVKpRDK4mIiExXrsOzAGDhwoWYM2cO1Go1fHx8sGDBAgQGBgIAOnToAHd3d3z55ZcAgH/++UfvHnJoaCh27doFoOhHhq1YsQJDhgwxqE4cnkVEzxIOz3r8jMkz5Z6olYiJmoieJUzUj98TMY6aiIiISsZETUREpGBM1ERERArGRE1ERKRgTNREREQKxkRNRESkYEzURERECsZETUREpGBM1ERERArGRE1ERKRgTNREREQKxkRNRESkYEzURERECsZETUREpGBM1ERERArGRE1ERKRgTNREREQKxkRNRESkYEzURERECsZETUREpGBM1ERERApW7ol60aJFcHd3h52dHQIDA7F///4iyx4/fhzPP/883N3doVKpMH/+/FLHJKKng0pVuheRUpVrol6zZg3i4uIwffp0HD58GN7e3ggPD8e1a9f0lr937x4aNGiAWbNmwcXFxSwxiYiIlEwlIlJeHx4YGAh/f38sXLgQAKDRaODm5obRo0dj8uTJxc7r7u6OsWPHYuzYsWaLmS8jIwMODg5IT0+Hvb298Q0joseutHvF5bclLH/87h4/Y/JMue1RZ2dn49ChQwgLC/tfZSwsEBYWhqSkpMcaMysrCxkZGTovIiIiJSi3RJ2Wloa8vDw4OzvrTHd2doZarX6sMRMSEuDg4KB9ubm5mfT5RERE5lbuF5MpQXx8PNLT07Wvy5cvl3eViIiIAABW5fXBTk5OsLS0RGpqqs701NTUIi8UK6uYtra2sLW1NekziYiIylK57VHb2NjA19cXiYmJ2mkajQaJiYkIDg5WTEwiIqLyVG571AAQFxeHmJgY+Pn5ISAgAPPnz0dmZiZiY2MBANHR0ahduzYSEhIAPLxY7MSJE9r/X7lyBX/++ScqV66MRo0aGRSTiIjoSVKuiToqKgrXr1/HtGnToFar4ePjg61bt2ovBrt06RIsLP6303/16lW0atVK+/dHH32Ejz76CKGhodi1a5dBMYmIiJ4k5TqOWqk4jproycOxwKYz93fHZVGyJ2IcNREREZWM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e/bg888/x5kzZ7TlRAR79uzBzz//jO+++w5qtRr79u1D/fr1H2cziZ4ovJiMiAqpV68edu/eDbVajW7duuHOnTto3bo1Tp8+jUaNGhV6WVg83JRUr14dERERWLFiBb788stCV4qrVCq0adMGM2bMwJEjR2BjY4PvvvuuPJpI9MTgxWREpJebmxt27dqFjh07Ijw8HJMmTUJkZCTq1q2LyMhIWFhY4OjRo0hOTsZ7772nne/ll19Gz549kZeXh5iYGO30ffv2ITExEV27dkXNmjWxb98+XL9+Hc2aNSuP5hE9MZioiahIderU0SbrWbNm4dtvv8Xs2bPx4YcfwtraGk2bNsXLL7+sM09YWBhq1aqFFi1awNXVVTvd3t4ev/76K+bPn4+MjAzUq1cPc+fOxXPPPfe4m0X0ROE5aiIyq7t376J27dpYsWKF3vPZRGQc7lETkVloNBqkpaVh7ty5cHR0RO/evcu7SkRPBSZqIjKLS5cuoX79+qhTpw6+/PJLWFlx80JkDjz0TUREpGAcnkVERKRgTNREREQKxkRNRESkYEzURERECsZETUREpGBM1ERERArGRE1ERKRgTNREREQKxkRNRESkYP8fR1YwfdPxaOIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 500x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sampling 2000 molecules, validity: 90.14999999999999%, uniqueness: 1.25%.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAEiCAYAAADONmoUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+eklEQVR4nO3de1wUVf8H8O+CXERhMVABQRBENEFAroI3FETJFA1FM1E068lbiaViJlqWinnJ9MnMW/aUaWrW4+MlwzRLwWuSF1SMvHFRUEBBQdjv7w9eOz8WlmV3GRqEz/v14qXMzh6+Z2f2fM/MnDMjY2YmAAAA+McZSB0AAABAU4UkDAAAIBEkYQAAAIkgCQMAAEgESRgAAEAiSMIAAAASQRIGAACQCJIwAACARJpJHUBDpFAoKDMzk8zNzUkmk0kdDgAAPEOYmR4+fEh2dnZkYKD5WBdJWI3MzExycHCQOgwAAHiG3bp1i+zt7TWugySshrm5ORFVfIAWFhYSRwMAAM+SwsJCcnBwEHKJJkjCaihPQVtYWCAJAwCAXrS5nImBWQAAABJBEgYAAJAIkjAAAIBEkIQBAAAkgiQMAAAgESRhAAAAiSAJAwAASATzhAFArbrcsZVZvDgAGjMcCQMAAEgESRgAAEAiSMIAAAASQRIGAACQCJIwAACARJCEAQAAJIIkDAAAIBEkYQAAAIkgCQMAAEgESRgAAEAiSMIAAAASQRIGAACQCJIwAACARJCEAQAAJIIkDAAAIBEkYQAAAIkgCQMAAEgESRgAAEAiSMIAAAASQRIGAACQCJIwAACARJCEAQAAJIIkDAAAIBEkYQAAAIkgCQMAAEgESRgAAEAiSMIAAAASQRIGAACQCJIwAACARJCEAQAAJIIkDAAAIBEkYQAAAIkgCQMAAEgESRgAAEAikifhtWvXkpOTE5mamlJAQACdPHmyxnUvXrxIL730Ejk5OZFMJqNVq1ZVW2fBggUkk8lUfjp37lyPNQAAANCPpEl4+/btFBcXRwkJCXT27Fny9PSk8PBwunv3rtr1i4uLydnZmZYsWUI2NjY1ltu1a1fKysoSfn777bf6qgIAAIDeJE3CK1asoEmTJlFsbCw9//zztG7dOjIzM6NNmzapXd/Pz4+WLVtGo0aNIhMTkxrLbdasGdnY2Ag/1tbW9VUFAAAAvUmWhEtLS+nMmTMUGhr6/8EYGFBoaCidOHGiTmVfu3aN7OzsyNnZmcaMGUM3b97UuH5JSQkVFhaq/AAAANQ3yZJwbm4ulZeXU9u2bVWWt23blrKzs/UuNyAggLZs2UIHDhygzz77jDIyMqhXr1708OHDGt+zePFiksvlwo+Dg4Pefx8AAEBbkg/MEtugQYNoxIgR1K1bNwoPD6d9+/ZRfn4+7dixo8b3xMfHU0FBgfBz69atfzBiAABoqppJ9Yetra3J0NCQcnJyVJbn5ORoHHSlK0tLS+rUqROlp6fXuI6JiYnGa8wAAAD1QbIjYWNjY/Lx8aGkpCRhmUKhoKSkJOrRo4dof+fRo0d0/fp1srW1Fa1MAAAAMUh2JExEFBcXR+PGjSNfX1/y9/enVatWUVFREcXGxhIRUUxMDLVr144WL15MRBWDuS5duiT8/86dO/THH39Qy5YtqWPHjkRE9Pbbb9OLL75Ijo6OlJmZSQkJCWRoaEijR4+WppIAAAA1kDQJR0dH071792j+/PmUnZ1NXl5edODAAWGw1s2bN8nA4P8P1jMzM8nb21v4/eOPP6aPP/6Y+vTpQ0eOHCEiotu3b9Po0aMpLy+PWrduTT179qTk5GRq3br1P1o3AACA2siYmaUOoqEpLCwkuVxOBQUFZGFhIXU4AJKQyfR/L1oVaMp0ySGNbnQ0AADAswJJGAAAQCJIwgAAABJBEgYAAJAIkjAAAIBEkIQBAAAkgiQMAAAgESRhAAAAiSAJAwAASARJGAAAQCJIwgAAABJBEgYAAJAIkjAAAIBE9ErCv/zyi9hxAAAANDl6JeGBAweSi4sLLVq0iG7duiV2TAAAGslk+v8ANCR6JeE7d+7Q1KlTaefOneTs7Ezh4eG0Y8cOKi0tFTs+AACARkuvJGxtbU0zZsygP/74g1JSUqhTp040efJksrOzo+nTp9P58+fFjhMAAKDRqfPArO7du1N8fDxNnTqVHj16RJs2bSIfHx/q1asXXbx4UYwYAQAAGiW9k/DTp09p586dFBERQY6OjnTw4EFas2YN5eTkUHp6Ojk6OtKIESPEjBUAAKBRaabPm6ZNm0bbtm0jZqaxY8dSYmIiubu7C6+3aNGCPv74Y7KzsxMtUAAAgMZGryR86dIl+vTTT2n48OFkYmKidh1ra2tMZQIAANBAr9PRCQkJNGLEiGoJuKysjH799VciImrWrBn16dOn7hECAAA0Unol4ZCQELp//3615QUFBRQSElLnoAAAAJoCvZIwM5NMzaz3vLw8atGiRZ2DAgAAaAp0uiY8fPhwIiKSyWQ0fvx4ldPR5eXllJqaSkFBQeJGCAAA0EjplITlcjkRVRwJm5ubU/PmzYXXjI2NKTAwkCZNmiRuhAAAAI2UTkl48+bNRETk5OREb7/9Nk49AwAA1IGMmVnqIBqawsJCksvlVFBQQBYWFlKHAyCJujzsoL5blYYcG4AuOUTrI+Hu3btTUlIStWrViry9vdUOzFI6e/as9tECAAA0UVon4aFDhwoDsSIjI+srHgAAgCYDp6PVwOlogIZ9yrchxwagSw6p81OUAAAAQD9an45u1aqVxuvAlam7mxYAAACo0joJr1q1qh7DAAAAaHq0TsLjxo2rzzgAAACaHK2TcGFhoXCBubCwUOO6GMwEAABQO52uCWdlZVGbNm3I0tJS7fVh5YMdysvLRQ0SAACgMdI6CR8+fJiee+45IiL65Zdf6i0gAACApgLzhNXAPGGAhj0XtyHHBlAvt62s6sGDB7Rx40a6fPkyERE9//zzFBsbKxwtAwAAgGZ63azj119/JScnJ1q9ejU9ePCAHjx4QKtXr6YOHTrQr7/+KnaMAAAAjZJeSXjKlCkUHR1NGRkZtHv3btq9ezf99ddfNGrUKJoyZYpOZa1du5acnJzI1NSUAgIC6OTJkzWue/HiRXrppZfIycmJZDJZjXOXdSkTAABAKnol4fT0dJo5cyYZGhoKywwNDSkuLo7S09O1Lmf79u0UFxdHCQkJdPbsWfL09KTw8HC6e/eu2vWLi4vJ2dmZlixZQjY2NqKUCQAAIBW9knD37t2Fa8GVXb58mTw9PbUuZ8WKFTRp0iSKjY2l559/ntatW0dmZma0adMmtev7+fnRsmXLaNSoUcITnepaJgAAgFS0HpiVmpoq/H/69On05ptvUnp6OgUGBhIRUXJyMq1du5aWLFmiVXmlpaV05swZio+PF5YZGBhQaGgonThxQtuwRCmzpKSESkpKhN9ruxkJAAA0THUZOU/0z4+e1zoJe3l5kUwmo8ozmmbNmlVtvZdffpmio6NrLS83N5fKy8upbdu2Ksvbtm1LaWlp2oYlSpmLFy+mhQsX6vU3AQAA9KV1Es7IyKjPOCQVHx9PcXFxwu+FhYXk4OAgYUQAANAUaJ2EHR0dRf3D1tbWZGhoSDk5OSrLc3Jyahx0VV9lmpiY1HiNGQAAoL7ofbMOIqJLly7RzZs3qbS0VGX5kCFDan2vsbEx+fj4UFJSEkVGRhIRkUKhoKSkJJo6dape8dRHmQAAAPVFryT8119/0bBhw+jPP/9UuU6sfKiDtg9wiIuLo3HjxpGvry/5+/vTqlWrqKioiGJjY4mIKCYmhtq1a0eLFy8mooqBV5cuXRL+f+fOHfrjjz+oZcuW1LFjR63KBAAAaDBYD4MHD+ahQ4fyvXv3uGXLlnzp0iU+duwY+/v786+//qpTWZ9++im3b9+ejY2N2d/fn5OTk4XX+vTpw+PGjRN+z8jIYCKq9tOnTx+ty9RGQUEBExEXFBTo9D6AxqRinKh+P005NpBWXfYNsfYPXXKIXg9wsLa2psOHD1O3bt1ILpfTyZMnyc3NjQ4fPkwzZ86kc+fOidpR+KfhAQ4ADfshCQ05NpBWQ5iipEsO0etmHeXl5WRubk5EFQk5MzOTiCoGb125ckWfIgEAAJocva4Ju7u70/nz56lDhw4UEBBAiYmJZGxsTOvXrydnZ2exYwQAAGiU9ErC8+bNo6KiIiIiev/992nw4MHUq1cvsrKyou3bt4saIAAAQGOl1zVhde7fv0+tWrUSRkg/y3BNGKBhX3dtyLGBtJ61a8J1midMRHTr1i0iItxhCgAAQEd6DcwqKyuj9957j+RyOTk5OZGTkxPJ5XKaN28ePX36VOwYAQAAGiW9joSnTZtGu3fvpsTEROrRowcREZ04cYIWLFhAeXl59Nlnn4kaJAAAQGOk1zVhuVxO3377LQ0aNEhl+b59+2j06NFUUFAgWoBSwDVhgIZ93bUhxwbSetauCet1OtrExIScnJyqLe/QoQMZGxvrUyQAAECTo1cSnjp1Kn3wwQdUUlIiLCspKaEPP/wQD0oAAADQktbXhIcPH67y+88//0z29vbk6elJRETnz5+n0tJS6t+/v7gRAgAANFJaJ2G5XK7y+0svvaTyO6YoAQAA6EbrJLx58+b6jAMAAKDJqdPNOu7duyc8sMHNzY1at24tSlAAAABNgV4Ds4qKimjChAlka2tLvXv3pt69e5OdnR1NnDiRiouLxY4RAACgUdIrCcfFxdHRo0fpv//9L+Xn51N+fj798MMPdPToUZo5c6bYMQIAADRKet2sw9ramnbu3El9+/ZVWf7LL7/QyJEj6d69e2LFJwncrAOgYd8QoyHHBtJ61m7Wodc14eLiYmrbtm215W3atMHpaAAA0ElDSJxS0et0dI8ePSghIYGePHkiLHv8+DEtXLhQuJc0AAAAaKbXkfCqVato4MCB1W7WYWpqSgcPHhQ1QAAAgMZKryTs4eFB165do6+//prS0tKIiGj06NE0ZswYat68uagBAgAANFY6J+GnT59S586dae/evTRp0qT6iAmeQU35mg4AgL50viZsZGSkci0YAAAA9KPXwKwpU6bQ0qVLqaysTOx4AAAAmgy9rgmfOnWKkpKS6KeffiIPDw9q0aKFyuu7d+8WJTgAABAHLhk1THolYUtLy2pPUQIAAADd6JSEFQoFLVu2jK5evUqlpaXUr18/WrBgAUZEAwAA6EGna8IffvghzZ07l1q2bEnt2rWj1atX05QpU+orNgAAgEZNpyS8detW+ve//00HDx6kPXv20H//+1/6+uuvSaFQ1Fd8AAAAjZZOSfjmzZsUEREh/B4aGkoymYwyMzNFDwwAAKCx0ykJl5WVkampqcoyIyMjevr0qahBAQAANAU6DcxiZho/fjyZmJgIy548eUL/+te/VKYpYYoSAEDjhsdJikOnJDxu3Lhqy1555RXRggEAAGhKdErCmzdvrq84AAAAmhy9blsJAAAAdYckDAAAIBEkYQAAAIkgCQMAAEgESRgAAEAiSMIAAAASQRIGAACQSINIwmvXriUnJycyNTWlgIAAOnnypMb1v/vuO+rcuTOZmpqSh4cH7du3T+X18ePHk0wmU/kZOHBgfVYBAABAZ5In4e3bt1NcXBwlJCTQ2bNnydPTk8LDw+nu3btq1z9+/DiNHj2aJk6cSOfOnaPIyEiKjIykCxcuqKw3cOBAysrKEn62bdv2T1QHAABAazJmae/iGRAQQH5+frRmzRoiIlIoFOTg4EDTpk2jOXPmVFs/OjqaioqKaO/evcKywMBA8vLyonXr1hFRxZFwfn4+7dmzR6+YCgsLSS6XU0FBAVlYWOhVRlNTl/vIEuFesg1RQ743cEOOraES+zsq5jYQM7aG0BbpkkMkPRIuLS2lM2fOUGhoqLDMwMCAQkND6cSJE2rfc+LECZX1iYjCw8OrrX/kyBFq06YNubm50RtvvEF5eXk1xlFSUkKFhYUqP02BTFa3HwAAqBtJk3Bubi6Vl5dT27ZtVZa3bduWsrOz1b4nOzu71vUHDhxIW7dupaSkJFq6dCkdPXqUBg0aROXl5WrLXLx4McnlcuHHwcGhjjUDAAConU4PcHhWjBo1Svi/h4cHdevWjVxcXOjIkSPUv3//auvHx8dTXFyc8HthYSESMQAA1DtJj4Stra3J0NCQcnJyVJbn5OSQjY2N2vfY2NjotD4RkbOzM1lbW1N6erra101MTMjCwkLlBwAAoL5JmoSNjY3Jx8eHkpKShGUKhYKSkpKoR48eat/To0cPlfWJiA4dOlTj+kREt2/fpry8PLK1tRUncAAAABFIPkUpLi6OvvjiC/ryyy/p8uXL9MYbb1BRURHFxsYSEVFMTAzFx8cL67/55pt04MABWr58OaWlpdGCBQvo9OnTNHXqVCIievToEb3zzjuUnJxMf//9NyUlJdHQoUOpY8eOFB4eLkkdAQAA1JH8mnB0dDTdu3eP5s+fT9nZ2eTl5UUHDhwQBl/dvHmTDAz+v68QFBRE33zzDc2bN4/mzp1Lrq6utGfPHnJ3dyciIkNDQ0pNTaUvv/yS8vPzyc7OjgYMGEAffPABmZiYSFJHAAAAdSSfJ9wQNZV5wo1tbh6IqyHPxW3IsTVUmCese1n6embmCQMAADRlSMIAAAASkfyaMEB9awinpwAA1EESBgBooHDtu/HD6WgAAACJIAkDAABIBEkYAABAIrgm/IzBNSIAgMYDR8IAAAASQRIGAACQCE5HA+gIlwQAQCw4EgYAAJAIkjAAAIBEkIQBAAAkgiQMAAAgESRhAAAAiSAJAwAASARTlAAARILHZoKucCQMAAAgERwJA0C9wxEigHo4EgYAAJAIkjAAAIBEkIQBAAAkgiQMAAAgESRhAAAAiSAJAwAASARJGAAAQCJIwgAAABJBEgYAAJAI7phVz3CnIAAAqAmSMDRIdem8oOMCAM8KnI4GAACQCJIwAACARJCEAQAAJIIkDAAAIBEkYQAAAIkgCQMAAEgESRgAAEAiSMIAAAASwc06ABoJ3J0N4NmDJAwgISROgKatQZyOXrt2LTk5OZGpqSkFBATQyZMnNa7/3XffUefOncnU1JQ8PDxo3759Kq8zM82fP59sbW2pefPmFBoaSteuXavPKgAAAOhM8iS8fft2iouLo4SEBDp79ix5enpSeHg43b17V+36x48fp9GjR9PEiRPp3LlzFBkZSZGRkXThwgVhncTERFq9ejWtW7eOUlJSqEWLFhQeHk5Pnjz5p6oFAABQO5aYv78/T5kyRfi9vLyc7ezsePHixWrXHzlyJL/wwgsqywICAvj1119nZmaFQsE2Nja8bNky4fX8/Hw2MTHhbdu2aRVTQUEBExEXFBToWp1qKk4Y6v8jZnn1GVtTqWdDjq2p1LMhx9ZU6tmQYxO7nvrQJYdIek24tLSUzpw5Q/Hx8cIyAwMDCg0NpRMnTqh9z4kTJyguLk5lWXh4OO3Zs4eIiDIyMig7O5tCQ0OF1+VyOQUEBNCJEydo1KhR1cosKSmhkpIS4feCggIiIiosLNS7bmIRMwSxq9NQY2sq9RS7vIZaltjlNZXYmko9xS5PjLKUuYOZa11X0iScm5tL5eXl1LZtW5Xlbdu2pbS0NLXvyc7OVrt+dna28LpyWU3rVLV48WJauHBhteUODg7aVaQeyeUNsyyxy2uoZYldXlOJranUU+zyGmpZYpfXVGJ7+PAhyWspEKOjiSg+Pl7l6FqhUND9+/fJysqKZHUdvqpBYWEhOTg40K1bt8jCwqLBlIXYpC8LsUlfFmKTvqyGHltNmJkePnxIdnZ2ta4raRK2trYmQ0NDysnJUVmek5NDNjY2at9jY2OjcX3lvzk5OWRra6uyjpeXl9oyTUxMyMTERGWZpaWlLlWpEwsLC9F2CDHLEru8phJbU6mn2OU11LLELq+pxNZU6lmT2o6AlSQdHW1sbEw+Pj6UlJQkLFMoFJSUlEQ9evRQ+54ePXqorE9EdOjQIWH9Dh06kI2Njco6hYWFlJKSUmOZAAAAUpD8dHRcXByNGzeOfH19yd/fn1atWkVFRUUUGxtLREQxMTHUrl07Wrx4MRERvfnmm9SnTx9avnw5vfDCC/Ttt9/S6dOnaf369UREJJPJ6K233qJFixaRq6srdejQgd577z2ys7OjyMhIqaoJAABQjeRJODo6mu7du0fz58+n7Oxs8vLyogMHDggDq27evEkGBv9/wB4UFETffPMNzZs3j+bOnUuurq60Z88ecnd3F9aZNWsWFRUV0WuvvUb5+fnUs2dPOnDgAJmamv7j9dPExMSEEhISqp0Kl7ossctrKrE1lXqKXV5DLUvs8ppKbE2lnmKRsTZjqAEAAEB0kt8xCwAAoKlCEgYAAJAIkjAAAIBEkIQBAAAkgiTcBGEsHjyLsN9CY4Qk3MA9fvyYFAqFKGVlZ2fTw4cPSSaT1blBu3nzJp04cUK02JTEamjFjOvmzZu0fft2evr0qSjlVY4NiaV2jx8/ppKSErp165YojyMtKysjInH3kYbq3r17dPr0aTpz5ozUoVRz48YN7P/UAOYJNyb5+fl09+5dysjIIBcXF7K2tq7T7S9v3rxJsbGxNGvWLAoLC1OZL62rgoICio2NJSMjI/rqq69ILpcTM+t1b2xmppiYGMrKyqINGzZQcHBwnWIjqmgsWrduLXQQ6nLP7oyMDNqxYwcVFBTQyJEja7xdqTaYmd577z1KTk6m0tJSGjVqFBkZGelV1uPHj8nQ0JCysrKoffv2JJPJSCaTkUKh0PnzU+5rWVlZZGFhQd7e3nrFVJO6bgOxyrt8+TLNmzePrl69SmlpaeTu7k7h4eG0ZMkSveK4fv06bdq0iQoLCykiIoIGDRqkVzmVZWVlUdu2bev8Haiqrtvg0qVL9Nprr5G5uTmZmZnRjh07yNDQUK+y7ty5Q8nJyXTjxg3617/+RWZmZnrHRVTx5LpRo0ZRdnY2/fXXX/V6j/4GT5ynJ8Kff/7JvXr1Yjc3NzY3N+fmzZtzZGQk79u3T+8yi4uLuWPHjhwQEMCHDx/m8vJyvcsqKyvjjz/+mHv16sVjxozh/Px8Zq54/rI+Hjx4wL6+vhwQEMBHjx6tU2wFBQVsa2vLr776qrBM37hSU1PZycmJX331VZ43bx6XlJToHZdSYWEhR0VFcUBAAG/ZsoVLS0t1LuPSpUs8cuRI7tq1K5uZmbG/vz/PmzdPeF2Xz+/PP//koKAg9vDwYBMTE5bJZDxkyBD+8ccfdY6LmTkzM5OTkpJ45cqV/OWXX/KdO3fqtD3z8/M5KyuLjx07xtnZ2cI20LXM1NRUlsvlPGXKFN6wYQPv3r2bhw4dyiYmJjx48GCdt0Nqairb29vz5MmTedWqVaLsG8XFxezi4sIvvPBCnT4zZubS0lIuLi7m/Px8vfaxyi5cuMCWlpY8d+5cvnHjRp1i+/PPP9nb25tHjx7Nc+bM4UePHtUpNuaK7/exY8fY3d2dvb299f6+K8t6liEJi+DChQtsYWHBcXFxfPToUb569SonJiayq6sr29vb886dO7UuS7lDKRuI4uJi9vPz4+7du+udiJVllpWV8Zo1a7hHjx51SsRPnz5l5orG1tPTs86J+PHjx/zZZ59xy5Yt+a233qoWt7auXr3Kbdq04Tlz5qgsF+ML/vDhQx46dKheiTg1NZUtLS158uTJ/O9//5t3797NoaGhLJfLOTQ0VKc4lfvajBkzODk5mc+cOcNffvklt27dml1dXfmrr77SqX6pqancuXNnDgwMZEtLS7awsGC5XM5Llizh27dv61SWMr5+/fpxp06dWCaTcevWrTk8PJzv3LmjdR2Zme/evcve3t7VtuXdu3d5zZo13KJFC46OjtY6rvT0dLazs+PZs2erLBejAT948CC3adOGR48erfd3IC0tjWNiYtjb25udnZ3Zy8uLd+7cyTk5OTqXlZeXxz179uTp06erLNenrpcvX+ZWrVrx3Llz+d69ezq/X5Py8nI+ceIEd+7cWe9ErHzPL7/8wvPmzeOXX36Zt23bxnfv3hU11vqEJFxHhYWF3K9fP542bVq11/bt28cBAQH8/PPP89mzZ7Uqr6ioSO0yHx8fnRNxbm4u379/X2VZaWkpr1mzhgMCAnRKxNevX+cff/yxWnn3799nT09P9vX1rVMiLioq4s2bN7OxsbFeifjp06c8ffp0jo6O5sLCQr1iULpy5Qpv3bqVr169qlKfgoICHjZsGPv6+mqdiHNyctjT05Pj4+NVlj948IAXL17MLVu25KioKK3iKiws5LCwMLX72qVLl7h9+/bs6enJly9f1qq8tLQ0oYG9ceMGl5aW8vnz5/nVV19lmUzGs2bN0qnhrdwZ3b9/P6enp/OsWbPYycmJHRwc+NKlS8ys3RHx2bNn2d3dnf/8808uKytTeV9+fj4vWrSIzczM+Pvvv6+1LIVCwfPnz+chQ4ZwXl6e1vXRRuUk0KpVK70ScWpqKrdq1YrHjx/PK1eu5A8++ID79u3LzZo14xkzZvCNGzd0Ku/ixYvs4uJS4/dR2+9UUVERDxkyhGNjY/V6f1VZWVl84sQJlWWlpaWckpLCrq6ueifiXbt2saWlJY8ePZpnzJjBhoaGPGHCBM7KytIrzn8aknAd3blzhz08PPinn35i5oqGQtloMFfsIC1atOCVK1cys+Yd+PLly+zs7MxTp07lzz77jPPy8rigoICZK74QPXr04G7dunFSUpLwN2oq7+rVq2xoaMiurq48YMAA/vbbbzklJUV4fcuWLRwUFMSjRo3iBw8eCLGrk5OTw82bN2eZTMYDBgzgkJAQ/u677/jkyZPMzPzo0SMODAzkwMBA/uWXX7RqhO7fv89///23yrLCwkLetGkTGxkZ6ZWIfXx8eObMmWpfU8b06NEjjeXl5eVxs2bNWCaTsa+vL3t6evKKFSt4//79zFyR7EeNGsW9evXijRs31pqIT58+zV5eXnz58mVhmyn/LSgo4LfffpvbtGnDBw8erLV+t27dYjc3N/7f//7HzKpnOJiZz507xzKZjBcvXlxrWSUlJTxhwgThEkDlfZaZefr06WxkZMQ//PCDyt+qyYMHD7h379789ttvq6xfWlrK+/bt4y5durCrqys/fPiw1tiYmTdv3sympqbC71X//l9//cVyuZyXLVumVXl9+vThsWPHqn2t8r6hPMujSXZ2Np8/f77a8sOHD7NcLudRo0ZpnYizsrK4S5cuPGvWLJXlCoWC33nnHZbJZPz+++9zWVmZ1mV+/fXX3KxZM+EzU/e+oqIiPnXqlMZycnNzuUuXLjWeXdElYd68eZOtrKxYJpNx3759OT4+npOSkoT27eTJk+zt7c3dunXTqdy//vqLO3XqxJ9//rmwzMzMrNoZlIYMSbiOzp49y4aGhvzzzz+rLK+8I7344os8YMCAasurmjVrFstkMraysuJ+/frxc889xwMGDOBly5bxtWvXuKSkhAMCArhv3778888/V2s4Kzt48CDLZDLu2LEj+/v7c48ePdjc3JzDw8N53rx5/Mcff/D8+fN58ODBPGHCBOHLoE5WVhbHxsayTCbj6dOn8+TJk9nd3Z3NzMx48ODBnJiYyKdOnWI7OzuOjIzkgwcPamwwrl+/zvb29mxnZ8dxcXH8+eef84MHD4TPZuPGjdyiRQuVIz5Nn1t5eTnfu3ePnZyc+NNPP2VmrjE5LlmyhK9cuVJjWczMc+fOFeo6ffp0DgsLYyMjIw4KCuIpU6bwDz/8wN27d+eBAwfy+vXrNTbcmzZtYmNjY37y5InKcmV9bt26xRYWFrx06VKNMTFXNFRyuZyPHj3KzKqJU1nfoUOHcmRkJJeWlmr8zBQKBXt7e/P777+vNq7y8nLu2bMn+/r6apWYbt++zV26dFE5U6P8t6ysjLdt26aSNGtraI8dO8ampqYaL+V4e3urdNbUUSgU/PDhQw4ICBA6CDVdC37//ff5yJEjGsu7ceMGt27dmmUyGU+cOJHnzp3L169fFzqyhw8fZhsbGx45cqRWn9v+/fvZ19eXb968ycwVn1nl787kyZO5ZcuWnJGRUWtZSr///nutn92nn37KYWFhGq+Lp6amspGRER86dKjGdZ4+fcpLly7l4uJijTH9/fff7OXlxW5ubuzr68vjxo1jU1NT9vLy4rFjx/L27dt5x44d7ObmxiEhIVon4rS0NA4ICGDmigOPdu3a8aRJk4TXL1y4oFU5UkIS1sPdu3f51KlTfPr0ac7Pz2dTU1P+6KOPmFl9r3P48OE8dOjQGstTHhE+efKEp02bxs2aNePDhw/zgQMHeM6cOezo6MgODg4cGhrKkydPZplMxv7+/kJjrC6227dv85EjR9jBwYHfffdd/u233/j06dM8Z84c9vDwYA8PD7axsWE7Ozsh4Wja8e/cucPjxo3jVq1acXp6OpeUlPChQ4d45syZ3KlTJw4ODmZLS0uWyWQ8dOhQjV/KjRs3spWVFdvY2LCHhwcHBwezlZUVR0RE8Oeff85Hjx7lrVu3sqmpKSckJNRYTlWDBw9md3d34ZR51W1x4cIF7tu3r3BatKrKjeY777zDLVu2FDo7Z86c4XXr1rGfnx/37duXDQwMWCaTcVBQkNoOjPKzPHDgABsZGfG+fftq7Jh4eXnxO++8U2v97ty5wxYWFirXNatus2HDhnFERITGcsrLyzk7O5vbtWvHa9euZWbVTosyzgULFnDHjh01dtCUjh49yjKZjP/66y+VuCondU9PTx4zZkytZTFXdE7atGnDQ4YMUTljoozt/v37HBQUpPEaeOVOyqRJk/i5557j7OxslXKUrl+/zhEREcLZnZr873//Y09PT5bL5TxgwACOiIhgKysr7tatG7/33nv8448/8qFDh4ROZNXOV1UrVqxge3v7amcIlJ/bxYsX2dLSkr/44guN5VR2+/ZttZ9d5X1l5syZPGfOnGr7T+W2rbCwkJs3b84ffvhhtfcrHTx4kKOiorQ6w3Ht2jUeNmwYDx06lJOTk/nGjRu8bds2Dg4OZn9/fzYzM2MPDw+WyWQ8bNgwreqakpLC9vb2/Ntvv7GLiwtPmjRJ2O4pKSk8bNiwWjvdUkMS1tHFixc5ODiYw8PDhR1l4sSJbG5uLpzurXzasby8nEeMGMELFixg5uo78pMnTzggIICdnZ1ZoVDw06dPeeTIkSyXyzk5OZmZK74Yly5d4unTp/OECRNYJpNxixYtqp3OVcYWFhYmxLZ582a2t7fnKVOmqAzyOHbsGK9fv54HDBjAHh4efPHiRbX1rdxYZWZm8ksvvcRyuVyoq/L1Y8eO8bp16zgiIqLGsir75JNP+MUXX+SYmBj++++/+ccff+SZM2eyvb09d+7cmTt16sRubm4sk8n4448/1liW8jNdu3YtW1tb8+TJkzk3N7faegkJCdy/f/9q1wUzMjLUrj9lyhQ2NTXl7du3V1v/u+++4zfeeKPa9dfi4mJ+8uSJsG2Ki4vZ2dmZBw8erJLMlJ9bXl4eBwUF8X/+8x+VulSlPEKaPHkyW1pa8jfffKPyellZGZeVlXFUVBQvWrRIY1lKL7zwAnft2rVap0X57/Lly9nLy6vWoxzmiiRmaWnJH330UbWjK2Ucw4cP5xEjRtRaltKuXbvY2NiYx44dW+2IZt68eezk5FTtO8CsfnsePHiQbW1teeDAgcIgscoSEhK4Z8+eWg2E2rVrF0dGRnJISAhnZ2fzuXPneMWKFezr68tOTk7cpUsXdnZ2ZplMVm0sAHNFp7vyWR9jY2OhflU7BwqFgq2trXnJkiW1xlU1RhMTEx47dqzK97GoqIjj4+PZ0dGxWnLS1LYp2yJlR1UZ/+zZs3nMmDFqx7Kok5aWxuHh4RwWFqbS4Xnw4AFv3bqV586dy97e3mrH0FTt2ClFRUWxoaEhjxw5UmV5fHw8BwUFCR2vhgpJWAdVh/0rd8iUlBT28fFhuVzOBw8eFIbwFxcXc0JCArdu3ZqvXr2qtkzlUP2uXbuyj48PKxQKLi8v55EjR7KZmRn/+uuv1d6TmprKt27d0io2ZuavvvqK7ezsePr06dWOAh89elTjF6jqF4654vpwdHQ0t2zZUuVLVPkaoCaVj06WLl3KgYGB/MYbbwgDxO7cucOXL1/mt956i4cPH84tW7bkP/74Q2N8lRuumJgYtrKy4hEjRvCVK1e4qKiIz58/z1OnTuVWrVqpvZb3+uuvc79+/YTfKzdaM2bMYGNjY96xY4fGujBXDI4aPnw4u7u7c7Nmzdjd3Z0TEhJ47969/Nxzz/GoUaOqbbd3332XnZycahx8U/WU5pEjR4TGfuPGjcLyJ0+eCPtabT3/qp2WKVOmqO2ExMbGckxMjNYjwXv37s0uLi6cnJwsbJPK+0VERISQTLQ53VhWVsbr1q3jZs2asZubG0+YMIHfffddfvnll7lVq1Y1Dnasuj3T09OZmXn+/PlsZ2fHfn5+nJyczLdv3+bjx48LHRt1+wZzxVF31SPab7/9lnv16sUDBgzgzMxMZq7oUOXl5XFiYiJPmTKFbW1tOTU1VeV9T5484cDAQG7fvj0rFArOysri9u3b87Bhw4QOgPLzfvr0KWdmZnJQUBAfOHCg1s+rsvLycuGz69y5M8fGxvIbb7zBQ4YM4TZt2lT77DS1bb6+viyXy/mnn34S2opbt27xnDlzuHXr1jWeWarJ1atXOTw8nMPDw9We/ld3Gl+5vxw9epQXLlzIiYmJwndm//79HBgYyCEhIZySksI///wzz5w5ky0sLGrcpg0JkrCWahr2r3To0CHu168fy2QyDggI4JCQEB40aBDb2NjwmTNnNJatHKrfqVMnlUQcHR3NLVq04N9//52Zqzf6tcVWNRG3a9eOp0+fzteuXau1vpUTXEhIiMqp76ysLI6OjmZzc3NhcEdtA8Uqr1M5aa5YsYIDAwN5woQJanusNZ3mqhrf4cOHhdemTp3KTk5ObGpqynZ2duzp6cmenp7Vkrny7506dYrHjRvHu3fv5m7duvFHH32kEuOMGTPYxMSEd+3aVWPdaprT2rx5cx4wYABv2bKFW7duzZ06deLXXnuN33vvPX755ZfZ0tKyxmSirGNZWRm/8cYbwvLK+1pgYCD37NmThwwZwra2thr3NXWdlrFjx7KVlRVHRUUJnZbMzEyeO3cuy+VyjdfUqg40S09P5w4dOrCXlxcfPHhQJZnMmzePbWxshISoi+TkZB4+fDh37dqVg4ODefLkyWpHgNe0PT/44ANhnWXLlrGnpyfLZDK2sLDgrl27ckBAQI2NdX5+Pk+cOFG4vlr5KH/Xrl3cp08fDgkJEa7pVqauc1t5fqyvry8zM3/00UdsYWHBr732WrWpNe+99x537NixWudNWykpKRwVFcVeXl7cq1cvnj17drUDAl3aNj8/P/bz8+OgoCDu0KGD1rM+qrp69SoPHDiQw8PDhfatNv/73//Y0NCQw8PD2cTEhIODg4WBg7t37+aIiAg2MjJid3d3Dg4OrrHz3tAgCWuppmH/lZPO/fv3+fPPP+cJEyZwVFQUf/LJJ2obHU1D9V1cXLh79+4qidjS0lLjgBFNUxIUCoUQ43/+8x9u3749x8bG8vXr12ssr3Jj7evryyEhIdV6p9nZ2TxmzBiWyWRafRErl7ls2TKV04jLly/noKAgnjhxojAlRlNS1ya+8+fP86ZNm3jZsmV86NChagm+uLiYhw0bJgxMmjZtGj/33HM8fPhwtfG//fbbLJPJeM+ePdVeq2lOa05ODq9Zs4YtLCw4KiqKL168yC+++CJ7eHgIZwBquz5dXl7O/v7+7OnpqZIA0tLSeMeOHTx27Fh+5ZVXeOXKlRoTnKZOy7Rp04ROi5OTE/v7+3OnTp00bteq21OZJH7//Xd2dXVlc3Nz9vPz4+joaI6IiOA2bdrU2hnVpKysTONoX122Z25uLu/du5e/+uorPnXqVI3TsB4/fszl5eU8ZswYHjduHDMzu7u7CyPlmSsScd++fTkkJESYV63uDFJlyk63q6sr9+rVi5krxiDI5XJ2c3Pj1atX8/vvv8+vvfYay+VyvROdkqYBnMzat21ffPEFv/766/zKK6/whg0bdBosps7Vq1d58ODBHBgYWK09rBpDdnY2jx8/Xrg2npuby2FhYRwUFKTynUxNTeXc3FxhoNyzAElYS5qG/Sv/X1RUxGlpaRrL0WaovpeXF3t6erJCoeCysjIeNGgQt2vXrsZrc9pOSbh9+zZ///333KVLlxqvk1RuXH18fDg0NFQ4opk6darKHcCysrJ4woQJtda5cpnu7u784osvVotxxYoV3Lt3bx45cqTaU6Paxrd3716NsSiVlJTwypUredq0aZyVlcWBgYFsYGDA8+fPZ+aK0aNVj47mzp2r9ghM05zWBw8eCHNalWcTSkpKNE45qVrHsLAwoY6JiYla1a+m8mrqtJw7d47Xr1/PH330Ee/Zs0fjjTrUbc/KDf2jR4/43Xff5ZEjR/KQIUN40aJFWp190aRyQlCX3LTZnufOndP672VlZfFbb73Fubm5rFAo2M7Ojq2srFT2N6Vdu3ZxaGgod+/eXe31Zk2dbicnJ+7du7dQzsCBA4WzN+PHj9dqfEVtavvstG3btJ1/rovLly9zVFSUxrnQv/32G0dERHDPnj1VOnI5OTkcHh7OQUFBvH379jrfsUwqSMJa0mbY/+rVqzksLEzjiEhth+p36tSJ+/fvz8wVjZ6mRlGb2D755BMOCwtjZhauv1ZVtfHv37+/0OBMmDBB7WCO2nrZVRNA5WkR33zzjUrj/OGHH3J4eLhwjU2M+DS5f/8+9+zZk62trXnkyJG8d+9eHjVqFAcHB3Pnzp21PgWo7ZxWbQbXaKrjxIkT2czMTGiwKp/lqOmoS6xOi7ryqm7Pr7/+us7Jti7E2p7MFdvM0dGRP/vsM2Zm9vPz4/bt2wunTk+fPq3SKf7mm2/4xRdfrDZQTJtOt4eHB/v7+6u8R6FQ1DqyWixitW36qu32oenp6dy5c2c2MDDgLVu2qLx27949fuGFF9jd3V3j5aKGDElYS3UZ9l+VLkP1azo9qk9s77zzjkrDXZmyYVY2rpUb/9jYWHZ2dtZ5AIamhDJmzBju1q0bZ2dnq8RT0x2NxIyvcsfB19eXjY2NhZut+Pr6soODg063bBRrTmvlo2g/P79qdXRxcdHpaETfTou2Cb2m7alteWIRe3sq4z1x4gQ/99xz7OjoyD179uSxY8fyhg0beMSIERwQEMCFhYUqdVN3pzZtO92urq7ct2/fWo9a64OYbVt9ycjIYC8vL+7bty//8ssvKq/l5ORwVFRUnU+PSwVJWAf6DPuvSV2G6osVm3JOoPIUj7LxDwkJqVMCLisrqzUBdOzYUWXQj7pTSWLGV7UshULBYWFhHBwczAsWLODZs2dzVFQUW1paspGRkTAlQ5tGp65zWiv/jdLSUvb09KxzJ0jsTouu27O+1df2rFxXZmY3Nzfu3LkzFxcX82+//cZGRkbs4uKiktTF7HRrOz9WbGK2bXWh/CzT0tL40KFDfOrUKeEMxpUrV9jDw4MHDBhQLRE/q6eimZGEdaLrsP/a6DNUX6zYlHMCBw4cyMOHD+eysjJOTk7m119/XaVx1aWxrjz/URmT8kujawIQMz51ZeXl5QlHridPnmQXFxd2c3Pj8vJyXrp0KQcHB+t09KTPnFblnOIbN24Ipza/+uorHjlypHCKTpdtIHanSsztKab62J7q6hoQEMBdu3bl/v378+XLl3nOnDncokUL7t+/v84PVhC70y02sds2fSg//507d3K7du3YycmJHR0d2c3NTRhPoUzEERERWt3q9VmAJKwHbYb9a0ufofp1jU2bx5xNnDiRHR0dtW5clfMfnZychC/T+vXrOSgoSOcGW8z4tClrwoQJbGZmxg4ODlxSUsJXr17lf/3rXzo9iUXXOa1V5xR7eXnxwoULVRJBTEwMd+jQQattIHanSsztKab62J7q6vr777/zlClTmLlimpDyFrB79+7liRMn8rfffqtz7GJ2uuuLmG2bLirPSzY3N+d169YJd/175ZVX2NTUVLhnwrVr19jBwYGHDx+u9U1CGjIkYT3VNiBJF9oM1deFpthqmhNY+T2XLl3iwYMH69S4Vp7/WPlpKMqBHK+88gq7urrWWqaY8dVUVuWGe+/evWxjY8MXLlzgMWPGCDfS1/ZBA1VpM6e1pjnFzZo1E56Te/DgQQ4MDNRqdGx9dKrE2p5iqq/tWVNdlYlh+vTpbG5uLlzTnzFjBg8cOFCvZ/6K3emuD2K2bbWpfAairKyMN2zYwCEhISrbNCsri19++WX29vYWnoyUkZGhcZrlswRJWE9iD6DQZqi+tjTFpu1jzh4/fqzz31XOf3Rzc1NpzPbs2cNt27bVKqGIGZ+2ZSkHg3322Wc8fvx4vROwkqY5rdo8JzcmJoaZWat7NtdXp0oZe123p5jqc3tWfratl5eXUNb777/P7dq14w8++IDHjh0rTEFSd3MObYnd6RbbPzU4TN0ZiBUrVnCrVq2Eeb7K5Xv37lV5HGZjgiTcgNQ2VF8MYj3mjFm354Nq+2xPMePTVJZyWVFRkcojGcW4z6ymRkyb5+SampoKdwKqjZidlvrYnmISc3vWVlcvLy9mrthet2/f5qdPn7Knpye//vrrotRFzE73s6ryGQhlx+f69ev8/PPP84oVK1RuuHHlyhV2dnZWeRxrY4Ek3MSI9ZgzbZ8P6uHhofV9pcWMT9eytHlIgRjEfk6uWJ2W+tqeYhJre2p7wxzlLWSVMjMzRR0h/E90uhu6ymdb/Pz8mLnifuoeHh6cmJjI2dnZ/PDhQ549ezZ37NhR5wFxzwIDgibF0dGRLCwsaOvWrXTjxg1hOTML///777/Jx8eHjIyMaixHoVCQg4MDderUiR49ekSZmZn0wgsvUJ8+fSgmJoYyMjIoPj6eSktLKTQ0lJhZY3lix6drWaamprXGJoaOHTsSEdGuXbuIiEgmk6m83qFDB3J2dqY7d+5oVZ6TkxM1a9aMdu/eTUREBgbVv9KbNm2iuXPnUmlpaY3l1Nf2FJNY21Obus6dO5cePXpE/fv3F8q3tbWlTp06iVYfY2Nj0cp6VmRnZ1NycrLwu4GBAfn4+NDWrVspNzeX+vTpQ4sWLaLIyEjaunUrOTk5UVhYGG3atIl27NhBbdq0kTD6eiJhBwAkItacwPqa/yjmnMWGMv9RSYzn5FYm1U1knvX5rM9CXRsbbe8eFhwczMwVlww2btzIu3fvVvvIysYCSbgJEnNOYH3MfxQzvoYw/7EqfZ+Tq6m8hnoTGbE19H0Xaqbt3cNcXFw4LCxMsrtz/dNkzJXO5UCTcvLkSVq2bBmlp6eTubk5BQUF0cSJE8nV1VWncq5du0bTpk0jIqL4+Hjq06ePyutlZWXUrFkzyeITu6y6Ki8vpw0bNtDUqVPJxcWFgoODydbWljIyMmj//v2UlJRE3t7eWpenUCjoiy++oKlTp1LHjh2pR48eZGpqSnfu3KHk5GQ6cOCATuXV1/YUU0Pfd0G99PR0mjVrFikUCoqPjydbW1s6fvw4rVmzhp4+fUoXLlwgFxcXunDhAg0dOpS+//57YuZql20aEyThJq68vJwMDQ3rXM61a9do+vTpxMw0f/58CgoKEiE68eITuywxpKSkUGJiIl25coUsLS3J09OTpk2bRp07d9arPDE7GvW1PcXU0PddUO/KlSv05ptvkkKhoA8//JD8/PyIiCg/P5/++9//UlpaGu3fv582btyoU+fxWYUk3MRV7mXWtcd57do1iouLo9zcXFq5ciUFBgY2qPjELEss5eXlZGBgQDKZjBQKhdqBVbqWJ1ZHoz62p5ga+r4LNcMZiP+H0dFNXOWGq65JydXVlZYtW0b29vZkZ2dX19CqxVTX+MQsSyzKBEwkTkyVk3hd+9f1sT3F1ND3XaiZq6srffrppySTyWjx4sV0/PhxldebSgImwpEw1IPS0tImOf2isWpK27Mp1bUhwBkIHAlDPUAj1rg0pe3ZlOraEOAMBI6EAQBAYk35DASSMAAAgERwOhoAAEAiSMIAAAASQRIGAACQCJIwAACARJCEAQAAJIIkDAAAIBEkYQAAAIkgCQM0YePHj6fIyEiVZTt37iRTU1Navny5NEEBNCFN5y7ZAFCrDRs20JQpU2jdunUUGxsrdTgAjR6OhAGAiIgSExNp2rRp9O233woJ+IcffqDu3buTqakpOTs708KFC6msrIyIiCZMmECDBw9WKePp06fUpk0b2rhxIxFVHFV7eHhQ8+bNycrKikJDQ6moqOifrRhAA4YjYQCg2bNn07///W/au3cv9e/fn4iIjh07RjExMbR69Wrq1asXXb9+nV577TUiIkpISKBXX32VevfuTVlZWWRra0tERHv37qXi4mKKjo6mrKwsGj16NCUmJtKwYcPo4cOHdOzYsTo/YhGgMcG9owGasPHjx9O2bduotLSUkpKSqF+/fsJroaGh1L9/f4qPjxeW/ec//6FZs2ZRZmYmERF17dqVxo0bR7NmzSIioiFDhpCVlRVt3ryZzp49Sz4+PvT333+To6PjP1sxgGcEkjBAEzZ+/Hi6ePEi5ebmkr29Pe3fv59atmxJREStW7emR48ekaGhobB+eXk5PXnyhIqKisjMzIxWrlxJ69evp8uXL1NOTg7Z29vT4cOHqVevXlReXk7h4eF08uRJCg8PpwEDBlBUVBS1atVKquoCNDhIwgBN2Pjx4yk/P58++eQTCgkJITs7O9q/fz+Zm5tT8+bNaeHChTR8+PBq73N2diYDAwPKy8sjOzs7OnLkCB0/fpw+//xzunr1qrAeM9Px48fpp59+ou+//56ys7MpJSWFOnTo8E9WE6DBwsAsACBHR0c6evQoZWdn08CBA+nhw4fUvXt3unLlCnXs2LHaj4FBRdNhZWVFkZGRtHnzZtqyZUu1EdUymYyCg4Np4cKFdO7cOTI2Nqbvv/9eiioCNEgYmAUARETk4OBAR44coZCQEAoPD6fZs2dTVFQUtW/fnqKiosjAwIDOnz9PFy5coEWLFgnve/XVV2nw4MFUXl5O48aNE5anpKRQUlISDRgwgNq0aUMpKSl079496tKlixTVA2iQkIQBQGBvby8k4iVLltDOnTspMTGRli5dSkZGRtS5c2d69dVXVd4TGhpKtra21LVrV7KzsxOWW1hY0K+//kqrVq2iwsJCcnR0pOXLl9OgQYP+6WoBNFi4JgwAdfLo0SNq164dbd68We31YwCoGY6EAUAvCoWCcnNzafny5WRpaUlDhgyROiSAZw6SMADo5ebNm9ShQweyt7enLVu2ULNmaE4AdIXT0QAAABLBFCUAAACJIAkDAABIBEkYAABAIkjCAAAAEkESBgAAkAiSMAAAgESQhAEAACSCJAwAACARJGEAAACJ/B/NWKRoN0U8OAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 500x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sampling 2000 molecules, validity: 91.4%, uniqueness: 1.2%.\n"
     ]
    },
    {
     "data": {
      "image/png": "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598rzt27d+W5556TN998U2f9nJwc2blzpzRv3ly8vLzk3r17BpVPRGTdunViZ2en/fvxMvz111/i4OAgCxcuNChex44dZdiwYXrfK7yvaHqPSpKSkiLHjx8vsnzfvn3i4OAggwcPNjhZJycnS/PmzWXKlCk6y9Vqtbz11luiUqlkzpw5kpeXZ1QD4PPPP5dKlSppvzd9n83KypLffvut1FhpaWnSvHnzYnttjEmqV65ckVq1aolKpZJOnTpJTEyMxMfHa499hw8fllatWknLli2NivvXX39JkyZN5JNPPtEuq1q1apEeGaVjojaDo0ePirW1tfzwww86ywvvUL169ZJu3boVWf64KVOmiEqlklq1aknnzp3lmWeekW7dusnChQvlwoULkp2dLYGBgdKpUyf54YcfihxMH7dnzx5RqVTSuHFjadu2rbRr105q1Kgh4eHhMmPGDPnjjz9k5syZ0rNnTxk5cqT2h6FPcnKyREVFiUqlkokTJ8rYsWPF29tbqlatKj179pQFCxbIb7/9Jq6urtK3b1/Zs2dPiQeRixcvSv369cXV1VWio6Plk08+kbt372q/nzVr1ki1atV0zhhL+u7y8/Pl1q1b4uHhIR9//LGISLHJc968eXLu3LkSvzsRkenTp2vrO3HiROnatatUrlxZgoODZdy4cfLNN99I69atpXv37rJq1apSD+hr164VGxsbefTokc5yTb2uXr0q9vb2Mn/+/FLLdvjwYXFwcJADBw6IiG5i1dS7T58+0rdvX8nJySn1AKdWq6VVq1YyZ84cvWXLz8+X9u3bS0BAgEGJ69q1a9K8eXOdHiDNf/Py8uTLL7/USaqGHIB//vlnsbOzK/FSUqtWrXQaePqo1Wq5d++eBAYGahsSmktNj5szZ47s37+/xHiXL1+W2rVri0qlklGjRsn06dPl4sWL2sbvvn37xNnZWQYOHGjQd7dr1y4JCAiQK1euiEjB91b4tzR27FipXr26XLp0qdRYhf3666+lfn8ff/yxdO3atdjvQ+PEiRNSuXJl2bt3b7Hr5Obmyvz58+XBgwclxvr777/Fz89PmjZtKgEBATJ8+HCxs7MTPz8/GTZsmGzatEk2b94sTZs2ldDQUIOT9dmzZyUwMFBECk5a6tWrJ6NHj9a+f/LkSYPiWBoTtYlu3rwpv/32m/z++++Snp4udnZ28v77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",
      "text/plain": [
       "<Figure size 500x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sampling 2000 molecules, validity: 89.8%, uniqueness: 1.25%.\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 500x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sampling 2000 molecules, validity: 90.75%, uniqueness: 1.2%.\n"
     ]
    },
    {
     "data": {
      "image/png": "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kFDma318fOS9994zOWZmZqY4ODjIpk2blDLHjh0TAJKUlGR03bOysgSAZGVlGf0aqhhA+R70aOD3pHz4+T14xuaZStsjz8vLw/79+xEZGakss7OzQ2RkJJKSkios5v79+5Gfn69XpmXLlmjYsKHZ70tERFRZqlTWG2dkZKCwsBB169bVW163bl0cP368wmKmpaVBrVbDzc2tWJm0tLQSY+fm5iI3N1f5Ozs726w6EhERWVKlD3azFQkJCXB1dVUe3t7elV0lIiKiykvktWvXhr29fbHR4unp6SUOZLNETE9PT+Tl5SEzM9Ok942Pj0dWVpbyuHDhgll1JCIisqRKS+RqtRpBQUFITExUlmm1WiQmJiIsLKzCYgYFBcHBwUGvzIkTJ3D+/PlS39fR0REuLi56DyIiospm1jnyn376CREREeV+87i4OMTExCA4OBghISFYvHgxcnJyEBsbCwAYMWIE6tevj4SEBAD3BrMdPXpU+f+lS5dw8OBB1KhRA02bNjUqpqurK0aPHo24uDjUqlULLi4umDhxIsLCwhAaGlruNhERET1Q5gyJV6vV0rhxY3nzzTfl/PnzZg2r11myZIk0bNhQ1Gq1hISESHJysvJceHi4xMTEKH+fPXtWABR7hIeHGx1TROTOnTsybtw4qVmzplSrVk369+8vqampJtWb08+sB6fFkDH4PSkffn4PnrF5RiUiYmryz8jIwKeffopPPvkER44cQdeuXTF69GhER0dDrVZbtKNhrbKzs+Hq6oqsrCweZq9kKlX5Xm/6L4BsEb8n5fMofX7W0lZj84xZ58hr166NKVOm4ODBg0hJSUHz5s0xbtw4eHl5YdKkSfjzzz/NrjgREREZr9yD3dq1a4f4+HhMmDABt27dwurVqxEUFIROnTrhyJEjlqgjERERlcDsRJ6fn48vvvgCvXr1go+PD7Zv346lS5ciPT0dp0+fho+PD55++mlL1pUeEipV+R5ERPR/zBq1PnHiRHz++ecQEQwfPhzz58+Hn5+f8nz16tXxr3/9C15eXharKBERERVnViI/evQolixZggEDBsDR0dFgmdq1a+Onn34qV+WIiIiodGYdWp89ezaefvrpYkm8oKAAv/zyCwCgSpUqCA8PL38NiYiIqERmJfKIiAhcv3692PKsrCyLXCiGiIiIjGNWIhcRqAyMOrp27RqqV69e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IDt27CixTH5+vrz77rty+/btUmP9888/EhgYKC1atJDg4GCJiYkRJycnCQwMlOHDh8uGDRtk48aN0qJFC4mIiDApmR8/flw0Go2I3NuxqV+/vowZM0Z5/vDhw0bHqixM5BXkypUrsnfvXtm3b59kZmaKk5OTvPPOOyJiuJc7YMAA6devX6kxdXuld+/elYkTJ0qVKlVk586d8v3338v06dPFx8dHvL29JTIyUsaNGycqlUpCQkKUjbih+l28eFF+/vln8fb2ltdee01+++032bdvn0yfPl38/f3F399fPD09xcvLS0lYZf1ILl26JDExMVKzZk05ffq05Obmyo4dO+Tll1+W5s2bS8eOHcXNzU1UKpX069ev1B/xqlWrxN3dXTw9PcXf3186duwo7u7u0qtXL/noo49k165dsnbtWnFycpLZs2eXWq+i+vTpI35+fsrh//vXyeHDh6VLly7KYd37Fd3Yvvrqq1KjRg2l07R//35Zvny5tG/fXrp06SJ2dnaiUqmkQ4cOJXaEdJ/p999/Lw4ODrJ169YSOziBgYHy6quvGtXOS5cuiYuLi9753fvXX//+/aVXr15lxiosLJS0tDSpX7++LFu2TET0O0G6+r7xxhvStGnTMjt9IiK7du0SlUolf//9t17dinYMAgICZNiwYWXGErnX0fHw8JC+ffvqHcXR1e369evSoUOHMscFFO3wjBkzRmrVqiVpaWl6sXTOnDkjvXr1Uo46GfLdd99JQECAuLq6So8ePaRXr17i7u4ubdq0kVmzZsn//vc/2bFjh9IpNebOWosWLZIGDRoUO1qh++yOHDkibm5u8p///KfMWDoXL140+PkV/c68/PLLMn36dIPbgaLbvezsbKlataq8/fbbxWLobN++XQYOHGjUEZdTp05J//79pV+/fpKcnCznzp2Tzz//XDp27CghISFSrVo18ff3F5VKJf379ze6zSkpKdKgQQP57bffpEmTJjJmzBhl/aekpEj//v3L7NBXNibyCnDkyBHp2LGjREVFKV+o0aNHi7Ozs3LYuuhh08LCQnn66afljTfeEBHDX/i7d++KRqORxo0bi1arlfz8fBk0aJC4uroqt329cuWKHD16VCZNmiSjRo0SlUol1atXL3ZYWle/7t27K/Vbs2aNNGjQQMaPH683SObXX3+VFStWSI8ePcTf31+OHDlS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",
      "text/plain": [
       "<Figure size 500x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from collections import Counter\n",
    "sample_num = 2000\n",
    "\n",
    "generator = PatchQuantumGenerator(n_generators, valid_state_mask)\n",
    "# 讀取模型參數\n",
    "generator.load_state_dict(torch.load('models_5_sverage_difference/heavy_atoms_2/generator_80_steps.pt')) # best_generator\n",
    "generator.eval()  # 設定模型為評估模式（如需要）\n",
    "for _ in range(5):\n",
    "    sample_smiles_list = generator.random_sample(sample_num=sample_num, fixed_noise=True)\n",
    "    # print(Counter(sample_smiles_list))\n",
    "    validity, uniqueness = calc_validity_and_uniqueness(sample_smiles_list)\n",
    "    print(f\"sampling {sample_num} molecules, validity: {validity*100}%, uniqueness: {uniqueness*100}%.\")\n",
    "    results = dict(Counter(sample_smiles_list))\n",
    "    results['None']= results.pop(None)\n",
    "    plot_two_heavy_atoms_system(results)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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TVJ6eroGDhwoSerXr59q1qypcePGSTo5eNrGjRt9/969e7fWrl2rcuXKqV69evl6TwAAAAAAiorrwbt3797av3+/xowZo+TkZEVHR2vhwoW+wdF27typoKA/Oub37NmjZs2a+X5+/vnn9fzzz6t9+/ZavHhxvt4TAAAAAICi4vo83v6IebwBAMVJoM3LGmj1AkBxwf63YAJmHm8AAAAAAIo7gjcAAAAAAA4ieAMAAAAA4CCCNwAAAAAADiJ4AwAAAADgIII3AAAAAAAOIngDAAAAAOAggjcAAAAAAA4ieAMAAAAA4KBCBe8vvvjiQtcBAAAAAECxVKjg3aVLF1166aV6+umntWvXrgtdEwAAAAAAxUahgvfu3bs1ZMgQvf/++6pbt67i4+P17rvvKjMz80LXBwAAAABAQCtU8K5cubIefPBBrV27VitWrFCDBg10//33q0aNGho2bJi+++67C10nAAAAAAAB6bwHV2vevLkSExM1ZMgQHT58WNOnT1eLFi101VVXacOGDReiRgAAAAAAAlahg/fx48f1/vvv6/rrr1ft2rW1aNEiTZ48WSkpKdq2bZtq166tW2+99ULWCgAAAABAwAkpzIuGDh2qf/3rXzIz9e3bV+PHj1eTJk18z5ctW1bPP/+8atSoccEKBQAAAAAgEBUqeG/cuFGvvPKKevTooVKlSuXZpnLlykw7BgAAAAD40/OYmRX0RV9++aViY2MVEpI7t584cUJLly7V1VdffcEKdENaWprCw8OVmpqqsLAwt8sBAOC8eDxuV5DbuY48qPf8FPzIDgBOYn9WMAXJjYW6x7tjx446ePDgactTU1PVsWPHwrwlAAAAAADFUqGCt5nJk8fpkF9//VVly5Y976IAAAAAACguCnSPd48ePSRJHo9HAwYMyHV/d1ZWltatW6fY2NgLWyEAAAAAAAGsQME7PDxc0ske7/Lly6t06dK+50qWLKk2bdronnvuubAVAgAAAAAQwAoUvGfMmCFJioyM1MMPP8xl5QAAAAAAnEOhRjUv7hjVHABQnATaKLXUe344sgNQWOzPCqYguTHfPd7NmzdXUlKSKlasqGbNmuU5uFq21atX579aAAAAAK4gaAFFI9/B+6abbvINpta9e3en6gEAAAAAoFjhUvM8cKk5AKA4CbQeLeo9PxzZoSDYfpET20PBFCQ3FmoebwAAAAAAkD/5vtS8YsWKZ72vO6eDBw8WuiAAAAAAAIqTfAfvSZMmOVgGAAAAAADFU76Dd//+/Z2sAwAAAACAYinfwTstLc13w3haWtpZ2zIgGQAAAAAAJxXoHu+9e/eqSpUqqlChQp73e5uZPB6PsrKyLmiRAAAAAAAEqnwH788//1wXXXSRJOmLL75wrCAAAAAAAIoT5vHOA/N4AwCKk0Cbl5V6zw9HdigItl/kxPZQMAXJjfnu8T7Vb7/9pjfffFObNm2SJDVu3FgDBw709YoDAAAAAAApqDAv+vLLLxUZGamXX35Zv/32m3777Te9/PLLqlOnjr788ssLXSMAAAAAAAGrUJeaN23aVG3bttWrr76q4OBgSVJWVpbuv/9+LV26VN9///0FL7Qocak5AKA4CbRLB6n3/Pj7pZnwL2y/yIntoWAKkhsL1eO9bds2PfTQQ77QLUnBwcFKSEjQtm3bCvOWAAAAAAAUS4UK3s2bN/fd253Tpk2bFBUVdd5FAQAAAABQXOR7cLV169b5/j1s2DA98MAD2rZtm9q0aSNJWr58uaZMmaLnnnvuwlcJAAAAAECAyvc93kFBQfJ4PDpXc4/Ho6ysrAtSnFu4xxsAUJwE2j171Ht+/P2eSPgXtl/kxPZQMI5MJ7Z9+/bzLgwAAAAAgD+bfAfv2rVrO1kHAAAAAADFUr6Dd142btyonTt3KjMzM9fybt26nVdRAAAAAAAUF4UK3j/99JNuvvlmff/997nu+/b8/5sCAv0ebwAAAAAALpRCTSf2wAMPqE6dOtq3b5/KlCmjDRs26Msvv1TLli21ePHiC1wiAAAAAACBq1A93suWLdPnn3+uypUrKygoSEFBQbryyis1btw4DRs2TGvWrLnQdQIAAAAAEJAK1eOdlZWl8uXLS5IqV66sPXv2SDo5ANuWLVsuXHUAAAAAAAS4QgXvJk2a6LvvvpMkxcTEaPz48fr666/15JNPqm7dugV+vylTpigyMlKhoaGKiYnRypUrz9r+vffeU6NGjRQaGqqmTZvqk08+yfX84cOHNWTIENWqVUulS5dW48aNNXXq1ALXBQAAAADA+SpU8B41apS8Xq8k6cknn9T27dt11VVX6ZNPPtHLL79coPeaM2eOEhISNHbsWK1evVpRUVGKj4/Xvn378my/dOlS9enTR4MGDdKaNWvUvXt3de/eXevXr/e1SUhI0MKFC/XPf/5TmzZt0vDhwzVkyBB9/PHHhfm4AAAAAAAUmseyhyQ/TwcPHlTFihV9I5vnV0xMjFq1aqXJkydLkrxeryIiIjR06FCNGDHitPa9e/dWenq65s+f71vWpk0bRUdH+3q1mzRpot69e2v06NG+Ni1atNB1112np59++pw1paWlKTw8XKmpqQoLCyvQ5wEAwN8U8KvZcec68qDe83NhjuzwZ8H2i5zYHgqmILmxUD3eOe3atUu7du3SRRddVODQnZmZqVWrVikuLu6PgoKCFBcXp2XLluX5mmXLluVqL0nx8fG52sfGxurjjz/W7t27ZWb64osvtHXrVl177bUFqg8AAAAAgPNVqOB94sQJjR49WuHh4YqMjFRkZKTCw8M1atQoHT9+PN/vc+DAAWVlZalq1aq5lletWlXJycl5viY5Ofmc7V955RU1btxYtWrVUsmSJdWlSxdNmTJFV199dZ7vmZGRobS0tFwPAAAAAAAuhEJNJzZ06FDNnTtX48ePV9u2bSWd7Il+/PHH9euvv+rVV1+9oEUW1CuvvKLly5fr448/Vu3atfXll19q8ODBqlGjxmm95ZI0btw4PfHEEy5UCgAAAAAo7goVvGfNmqXZs2fruuuu8y274oorFBERoT59+uQ7eFeuXFnBwcFKSUnJtTwlJUXVqlXL8zXVqlU7a/ujR49q5MiR+vDDD9W1a1dfbWvXrtXzzz+fZ/BOTExUQkKC7+e0tDRFRETk6zMAAAAAAHA2hbrUvFSpUoqMjDxteZ06dVSyZMl8v0/JkiXVokULJSUl+ZZ5vV4lJSX5etJP1bZt21ztJemzzz7ztT9+/LiOHz+uoKDcHy04ONg3EntenycsLCzXAwAAAACAC6FQwXvIkCF66qmnlJGR4VuWkZGhZ555RkOGDCnQeyUkJOj111/X//3f/2nTpk267777lJ6eroEDB0qS+vXrp8TERF/7Bx54QAsXLtTEiRO1efNmPf744/r22299vzcsLEzt27fXI488osWLF2v79u2aOXOm3nrrLd18882F+bgAAAAAABRavi8179GjR66f//vf/6pWrVqKioqSJH333XfKzMxUp06dClRA7969tX//fo0ZM0bJycmKjo7WwoULfQOo7dy5M1fvdWxsrGbNmqVRo0Zp5MiRql+/vubNm6cmTZr42syePVuJ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Bg4cqBIlSujtt99WeHi4zEwej8ft0vJkZurXr5/27t2rN954Q+3atfPr9Sud/JK/+OKLfSc2/HXdZtu+fbveffddpaamqlevXoqOjna7pDMyM40ePVrLly9XZmambrvtNpUoUcLtss7o6NGjCg4O1t69e3XJJZfI4/HI4/HI6/X65Xacvf/du3evwsLC1KxZM7dLKrBA+JvLyZ/r3bRpk0aNGqWtW7dq8+bNatKkieLj4/Xcc8+5XdoZ/fjjj5o+fbrS0tJ0/fXX67rrrnO7pLPau3evqlat6pf7g3Px520328aNG3XvvfeqfPnyKlOmjN59910FBwe7XdYZ7d69W8uXL9eOHTv017/+VWXKlHG7pLPKyMjQbbfdpuTkZP30009+vz3g/AXengpntH79enXr1k3dunXTrbfeqiuuuEIDBw7UggUL3C7trC6++GLt3LlTY8eO1ZIlS/z6LHu5cuUUFxenQ4cOafDgwUpNTfXrnm+Px6N58+YpLCxMjzzyiP73v//59fpNS0tTVFSU7rnnHkny63UrSd9//72uueYabdu2TcHBwWrcuLHbJZ2Vx+PR5MmTdcUVV2jKlCmaNWuW3/Z8b9q0SQMGDFDz5s3VuHFjtWnTRqNHj5YkBQUF+d12vH79enXt2lU9e/ZUfHy8WrRooZtuukn//ve/3S7tjPbu3avPP/9ckyZN0ltvvaU9e/b49d9bamqqkpOT9b///U8pKSnKzMz0nYjxN99//73atm2r6tWra/jw4Xr33XdVu3ZtTZo0STfeeKNf/t19//336tChgw4dOqR69eqpU6dObpd0VkePHtVVV12lbt26+eU2cKrjx4/r6NGjSk1N1fHjx/0+ZG3YsEHt2rVT+/bt9dprr+m9997z69C9fv163Xjjjfrggw+0f/9+v96XZStZsqQmTJigcuXKqUWLFn5fs7/XFxAMxcL69estLCzMEhISbMmSJbZ161YbP3681a9f32rVqmXvv/++2yXm4vV6zcwsIyPDzMyOHDlirVq1subNm9vnn39uWVlZbpaXp+yaT5w4YZMnT7a2bdvaHXfcYYcOHcr1vD85fvy4mZkdOnTIoqKiLCYmxpYsWeKX69fM7OjRo/bqq69auXLlbPjw4b7l/rhut27dalWqVLERI0bkWu6PtWbLru3333+3m266yWJiYmzmzJmWmZnpcmW5rVu3zipUqGD333+//eMf/7C5c+daXFychYeHW1xcnK+dv6zr7P3vgw8+aMuXL7dVq1bZ//3f/9nFF19s9evXt7ffftvtEk+zbt06a9SokbVp08YqVKhgYWFhFh4ebs8995z98ssvbpd3mvXr19s111xjDRo0MI/HYxdffLHFx8fb7t27zcx/tgUzs3379lmzZs1O2zfs27fPJk+ebGXLlrXevXu7VF3etm3bZjVq1LDHHnss13J/Wq95WbRokVWpUsX69Onjt99rZmabN2+2fv36WbNmzaxu3boWHR1t77//vqWkpLhdWp5+/fVXu/LKK23YsGG5lvvr9rBp0yarWLGijRw50vbv3+92OQWSlZVly5Yts0aNGlmzZs38dh1n1/XFF1/YqFGj7Pbbb7d//etftm/fPpcrCywE72IgLS3NrrnmGhs6dOhpz33yyScWExNjjRs3ttWrV7tQXd7S09PzXNaiRQu/C98HDhywgwcP5lqWmZlpkydPtpiYGL8L3z/++KN9/PHHp9V88OBBi4qKspYtW/p1+E5PT7cZM2ZYyZIl/TZ8Hz9+3IYNG2a9e/e2tLQ0t8s5qy1btthbb71lW7duzfX/PDU11W6++WZr2bKlX4XvlJQUi4qKssTExFzLf/vtNxs3bpyVK1fOevbs6VJ1p0tLS7POnTvnuf/duHGjXXLJJRYVFWWbNm1yobq8bd682XeQumPHDsvMzLTvvvvO7r77bvN4PPboo4/61cFrzhPLCxYssG3bttmjjz5qkZGRFhERYRs3bjQz85t92urVq61Jkyb2/fff24kTJ8zsj9oOHTpkTz/9tJUpU8Y+/PBDF6v8g9frtTFjxli3bt3s119/dbucfMsZBCpWrOi34XvdunVWsWJFGzBggL344ov21FNPWYcOHSwkJMQefPBB27Fjh9slnmbDhg126aWXnvFYwZ++j9PT061bt242cODAXMv9qcac9u7da8uWLcu1LDMz01asWGH169f36/D9wQcfWIUKFaxPnz724IMPWnBwsN111122d+9et0sLGATvYmD37t3WtGlT+/TTT83s5Bd89pe92ck/lLJly9qLL75oZu7vjDZt2mR169a1IUOG2Kuvvmq//vqrpaammtnJHWjbtm3tiiuusKSkJN/ncKvmrVu3WnBwsNWvX9+uvfZamz17tq1YscL3/MyZMy02NtZuu+02++2338zM3YO/lJQUK126tHk8Hrv22mutY8eO9t5779nKlSvNzOzw4cPWpk0ba9OmjX3xxRd+cZBy8OBB+/nnn3MtS0tLs+nTp1uJEiX8Nny3aNHCHnrooTyfy16vhw8fdrXmX3/91UJCQszj8VjLli0tKirKXnjhBVuwYIGZnTyBcNttt9lVV11lb775pl+E72+//daio6Nt06ZNvr//7P+mpqbaww8/bFWqVLFFixa5WabPrl27rGHDhvaf//zHzHJfGWNmtmbNGvN4PDZu3DjXaswpIyPD7rrrLrv77rvNzHJ9V5iZDRs2zEqUKGEfffSRmbn/N/fbb7/Z1VdfbQ8//HCuejIzM+2TTz6xyy67zOrXr2+///67m2XmMmPGDAsNDfX9fOo6/Omnnyw8PNwmTJhQ1KWdUfv27a1v3755Ppdzf5Z9FZVbkpOT7bvvvjtt+eeff27h4eF22223+cX3Wra9e/faZZddZo8++miu5V6v1x555BHzeDz25JNP2okTJ/yq7nfeecdCQkJ8225etaWnp9s333xT1KWd5sCBA3bZZZed8coit/dhOe3cudMqVapkHo/HOnToYImJiZaUlOQ7Bl65cqU1a9bMrrjiCr+q2+zkfqtBgwb22muv+ZaVKVPmtCt7cHbc410MpKSkaOPGjb7BRYKCghQcHOy7F6NHjx665ppr/OZe7xkzZmj79u3617/+pffee0/169fXrbfequeff1579uzR4sWLVbp0aT311FNavHixsrKyXLsXavv27fJ6vTIzHTp0SC+99JLi4uLUpUsXjR49WtHR0YqLi9Phw4f10EMPKS0tzdVBXrxer2677TZJUqNGjXTZZZfpiSeeUIcOHXTjjTfqH//4h1555RXt3LlTL730kv773/+6em/cTz/9pCuuuEKxsbF66KGHNG3aNB06dEjlypXTwIEDNXXqVL3++usaNmyYJP+459vr9erAgQP69ddfFRkZKUmn3a+ZvQ1MnjxZP/zwQ1GX6HPRRRfp0UcflSTFxsaqffv2WrBggbp166Z27dpp+PDh6tOnj9LT0/Xee+9p5syZvhGN3bJu3Tpt3LhRderU8d1PmL0/CwsL0wMPPKBjx45p7dq1rtaZbe/evUpOTla5cuUk/TESdHBwsI4fP67o6Gh169ZNK1as0PHjx13ffkuUKKE1a9bokksu8dUp/XHv3osvvqiYmBg99dRTOnHihOv3oaanp2v//v26/vrr5fV6ffd0lyhRQtdee63GjBmjffv2aerUqZL84x7EevXqSZI++OADSTptHdapU0d169bV7t27i7y2U5mZDh8+rGPHjqlq1aqSpMzMzFxtsvdnL7zwgr7++usirzHbzp071bRpU0VHR+vuu+/W3/72N/300086dOiQOnbsqA8//FCLFy9Wnz59XN+PZVu7dq3Kli2rIUOGSDq5f8jejsePH6/77rtP48eP165du/xqgLjIyEiFhIRo7ty5kpRnbdOnT9fIkSNP216K2p49e7Rt2zZVq1Ytz+c9Ho9OnDih8ePH6+jRo0VcXW5er1cRERFq0KCBDh8+rD179qhr165q3769+vXrp+3btysxMVEZGRnq1KmTX+zPsmVmZqpixYq699579cMPP6hWrVq64447NG7cOEknxwTAufnPXzkKJOf0DnXr1lWJEiW0cuVKSX8c+OX8si9RooRKly592vKitGPHDknSk08+qSFDhig1NVWjRo3SrFmz1Lx5c02ePFnXXHONunbtqhYtWmjJkiUaOXKkK1/02ev38ssv1xdffKGMjAx17txZEyZM0BdffKFmzZrpo48+Ut++fTVt2jStXr1aM2bM0OjRo13dUVarVk1PP/20+vXrp7ffflsJCQlatWqVPvroIzVs2FBvvPGGhg8friNHjuijjz7SP/7xD2VkZLhW7+LFi31TyX322Wd66623VK9ePd1www2aNm2a6tWrp1dffVWvv/66Hn/8cUnubb/ZgoKCVLlyZTVp0kSvvfaafvvtN5UoUeK0ExgbNmzQwoULlZWV5Uqd2QeezzzzjB5++GFNnz5d3bp104IFC7R8+XL169dPK1eu1Isvvqi1a9dq0aJFmjlzpo4cOeJKvdl/NzVq1JCZ6fPPP8+1TrP/v9eqVUt169bVgQMHXKnzVDVr1pSZ6ZNPPpGkXCc9s0eMDwoKUmZmpkqUKOHq9uv1erVv3z7t27dPlSpVkvTHSaOco8VnDyDp1raQ048//qjNmzcrMjJSQUFBMjPff4ODg9WrVy9FRkb6TsS4vX+QToaWsLAwvfXWW77vPemP7+bffvtNpUuXVosWLdwqUZJ8J7XLlSunK664QtOnT1dKSopKlix52v7sp59+0vLly10dJXr9+vWqUaOGwsLCtGvXLq1du1atW7dW+/btNWbMGB0+fFhvv/22/vOf/yghIcHV77ZsmzZtUnJysipWrCjp5L4ge/uVpMGDByskJET//e9/3SzzNLVr185zG855fPPzzz+rRYsWrsyMkfMYOPskQfYxcF7HYJ9//rm++eYb176Ps9WuXVvvvfeeGjdurJo1a+q+++7Tli1b9Nhjj+mnn37SxIkTNWDAAJUsWVKLFy/WLbfc4mq9OaWmpmr37t36+uuvdd111+n666/Xq6++KklauXKlRo8era1bt7pcZQAo4h52XAAbNmywdu3aWXx8vN18881mZjZo0CArX7687zLonJdoZmVl2a233mqPP/64mblz2c2xY8csJibG6tata16v144fP269evWy8PBwW758uZmdHHhm48aNNmzYMLvrrrvM4/FY2bJlT7sM2WnZ67dz586+9TtjxgyrVauWDR48ONdgKF999ZVNmzbNrr32WmvatKlt2LChSGvNKeelYHv27LFbbrnFwsPDfdtE9vNfffWVTZ061a6//npX68320ksv2Y033mj9+vWzn3/+2T7++GN76KGHrFatWtaoUSNr0KCBNWzY0Dwejz3//PNul+v7+5kyZYpVrlzZ7r//fjtw4MBp7caOHWudOnUq8nsmt2/fnmc9gwcPttDQUJszZ85p7d977z277777XLkP+ciRI3bs2DHf3/mRI0esbt26dsMNN/guvzP7Y/v99ddfLTY21v75z3+ambuXEWZlZVlWVpbdf//9VqFCBZs1a1au50+cOGEnTpywnj172tNPP21m/nHZY9euXe3yyy/3jQORvW6z/ztx4kSLjo62I0eOuFZjth9//NEqVKhgzz77rG8wzmzZ67JHjx526623ulHeGX3wwQdWsmRJ69u3r61fvz7Xc6NGjbLIyMgi/27Lltc+YtGiRVa9enXr0qWLb8C6nMaOHWtXXnml64OBffDBB9a9e3fr2LGjJScn25o1a+yFF16wli1bWmRkpF122WVWt25d83g8p40TUVR+/vln37b55ptvWsmSJX3bwKmXbHu9XqtcubI999xzRV7nuXzwwQdWqlQp69u3b65jhfT0dEtMTLTatWvbli1biryusx0DZx9PZt8Skf3/4bHHHrM77rgjz/GF3LB582aLj4+3zp07+24FNDt5a81bb71lI0eOtGbNmrk2NlP2ejv1+6pnz54WHBxsvXr1yrU8MTHRYmNjLTk5uchqDFQE7wCzfv16q1Chgm9QnOydy4oVK6xFixYWHh5uixYtssOHD5vZyYPYsWPH2sUXX2xbt251rW6v12tfffWVXX755daiRQvzer2WlZVlvXr1sjJlytiXX3552mvWrVtnu3btKtI6z7R+zczefvttq1Gjhg0bNsw3mE+2w4cPu7pDP/VLxuzk/d69e/e2cuXK5dqx57xH0k057y39+9//bm3atLH77rvPN1Dd7t27bdOmTTZ8+HDr0aOHlStXztauXetWub51nPPAqV+/flapUiW79dZbbcuWLZaenm7fffedDRkyxCpWrJjnvYhO+8tf/mLXXHON7+ecB0wPPviglSxZ0t59993TXnfqvb5FYePGjdajRw9r0qSJhYSEWJMmTWzs2LE2f/58u+iii+y22247bR/wt7/9zSIjI10dkOjU+1wXL17sO/B/8803fcuPHTvm2/+6cYB6qlNPGg0ePDjPkzQDBw60fv36ub6PyHb11VfbpZdeasuXL/f9/eXcj11//fW+4OIPJzbMTv49TZ061UJCQqxhw4Z211132d/+9je7/fbbrWLFiq4OdnrqPmLbtm1mZjZmzBirUaOGtWrVypYvX26//PKLLV261HdiyY392cGDB+3YsWO5ls2ePduuuuoqu/baa23Pnj1mdvKE3K+//mrjx4+3wYMHW/Xq1W3dunVFXu+xY8esTZs2dskll5jX67W9e/faJZdcYjfffLPvpEX239Xx48dtz549FhsbawsXLizyWs8lKyvLtw03atTIBg4caPfdd59169bNqlSp4so2fLZj4JYtW1p4eLh9+umnvuOxXbt22YgRI+ziiy8+7bjNbVu3brX4+HiLj4+3xYsXn/a8W+MpZO9DlyxZYk888YSNHz/e9327YMECa9OmjXXs2NFWrFhh//3vf+2hhx6ysLAwV/YPgYjgHUDONL1Dts8++8yuueYa83g8FhMTYx07drTrrrvOqlWrZqtWrSriak+XPWVCgwYNcoXv3r17W9myZe3rr782M3cCgNmZ1++p4btmzZo2bNgw++GHH4q6xDzlDIQdO3a0JUuW+J7bu3ev9e7d28qXL+8bBMXtAety1pAzxL7wwgvWpk0bu+uuu/I8a+rm4EmnruPPP//c99yQIUMsMjLSQkNDrUaNGhYVFWVRUVFFfpIge51988031r9/f5s7d65dccUV9uyzz+Zazw8++KCVKlXKPvjggyKt71Tr1q2z8PBwGzx4sL3xxhs2d+5cu+mmm6x06dJ27bXX2syZM+3iiy+2Bg0a2L333mujR4+222+/3SpUqOBqaMneFk6cOGH33Xefb3nO/W+bNm3syiuvtG7duln16tVd3//mddKob9++VqlSJevZs6fvpNGePXts5MiRFh4eflovbVE6dVC9bdu2WZ06dSw6OtoWLVqUK7iMGjXKqlWr5guP/mb58uXWo0cPu/zyy61du3Z2//33uzbC/Zn2EU899ZSvzYQJEywqKso8Ho+FhYXZ5ZdfbjExMa4cVB86dMgGDRrkmw415xUPH3zwgbVv3946duxoO3fuPO21bp0Iz+5kaNKkibVs2dLMzJ599lkLCwuze++997Spl0aPHm316tUr8k6GglixYoX17NnToqOj7aqrrrLHHnvMlY6cghwDt2rVylq1amWxsbFWp04dv5rVJ6etW7daly5dLD4+3ncM7A/+85//WHBwsMXHx1upUqWsXbt2vgE3586da9dff72VKFHCmjRpYu3atXO1UyTQELwDyJmmd8gZoA4ePGivvfaa3XXXXdazZ0976aWXXDsgOduUCZdeeqk1b948V/iuUKFCnmf9isrZps/wer2+9fzPf/7TLrnkEhs4cKD9+OOPbpTqk/OAumXLltaxY8fTzpImJyfbHXfcYR6Pxy++fHLWPGHChFyXW06cONFiY2Nt0KBBvumM3D5RkJ91/N1339n06dNtwoQJ9tlnnxX55VZHjhyxm2++2Z588kkzMxs6dKhddNFF1qNHjzzbP/zww+bxeGzevHlFWabPmeY5TklJscmTJ1tYWJj17NnTNmzYYDfeeKM1bdrUd0WEm70WObeF1q1bW1RUVK4wsHnzZnv33Xetb9++duedd9qLL77oeiA820mjoUOH+k4aRUZGWuvWra1BgwZ+cWIje/+QHUi+/vprq1+/vpUvX95atWplvXv3tuuvv96qVKni+omNczlx4sRZR4cuCgXZRxw4cMDmz59vb7/9tn3zzTeuTC139OhRy8rKsjvuuMP69+9vZmZNmjTxzchgdjJ8d+jQwTp27Oibez6vq7+KWnYnQ/369e2qq64yM7NHHnnEwsPDrWHDhvbyyy/bk08+affe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BADArzC4GgAAf0K1a9fWkiVLlJycrC5duuj3339X8+bNtWXLFtWrV++0R1DQyUOGSpUqqXv37poxY4Zmzpx52kjoHo9H7dq10xNPPKE1a9aoZMmS+vDDD934iAAA+A0GVwMA4E8qIiJCixcvVseOHRUfH6/HHntMPXv21CWXXKKePXsqKChI3333ndavX6+nn37a97q7775bN9xwg7KystS/f3/f8hUrVigpKUnXXnutqlSpohUrVmj//v267LLL3Ph4AAD4DYI3AAB/YrVq1fKF7+eee07vv/++xo8fr7///e8qUaKEGjVqpLvvvjvXa+Li4lS9enVdfvnlqlGjhm95WFiYvvzyS02aNElpaWmqXbu2Jk6cqOuuu66oPxYAAH6Fe7wBAECBHD58WDVr1tSMGTPyvB8cAADkRo83AADIF6/XqwMHDmjixImqUKGCunXr5nZJAAAEBII3AADIl507d6pOnTqqVauWZs6cqZAQDiMAAMgPLjUHAAAAAMBBTCcGAAAAAICDCN4AAAAAADiI4A0AAAAAgIMI3gAAAAAAOIjgDQAAAACAgwjeAAAAAAA4iOANAAAAAICDCN4AAAAAADiI4A0AAAAAgIP+H5rsk1WSakJLAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "\n",
    "\n",
    "results = dict(Counter(sample_smiles_list))\n",
    "results['None']= results.pop(None)\n",
    "plot_two_heavy_atoms_system(results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['C.N', 'NN', 'CO', 'C=O', 'N=O', 'O=O', 'C=N', 'N', 'O', 'CC', 'C.O', None, 'C#N', 'C', 'CN', 'NO', 'N=N', 'O.O', '', 'C#C', 'N.O', 'C=C', 'N.N', 'OO', 'N#N', 'C.C'])"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dict(Counter(sample_smiles_list)).keys()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "qmg2",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.19"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
